package com.moodbox.server.common.enums;

import com.baomidou.mybatisplus.annotation.EnumValue;
import com.fasterxml.jackson.annotation.JsonValue;
import lombok.Getter;

/**
 * 心情等级枚举
 */
@Getter
public enum MoodLevelEnum {
    /**
     * 非常糟糕
     */
    VERY_BAD(1, "非常糟糕"),

    /**
     * 糟糕
     */
    BAD(2, "糟糕"),

    /**
     * 一般
     */
    NEUTRAL(3, "一般"),

    /**
     * 好
     */
    GOOD(4, "好"),

    /**
     * 非常好
     */
    VERY_GOOD(5, "非常好");

    /**
     * 枚举编码
     */
    @EnumValue
    @JsonValue
    private final Integer code;

    /**
     * 枚举描述
     */
    private final String description;

    MoodLevelEnum(Integer code, String description) {
        this.code = code;
        this.description = description;
    }

    /**
     * 根据编码获取枚举
     * @param code 编码
     * @return 枚举
     */
    public static MoodLevelEnum getByCode(Integer code) {
        if (code == null) {
            return NEUTRAL;
        }
        for (MoodLevelEnum levelEnum : values()) {
            if (levelEnum.code.equals(code)) {
                return levelEnum;
            }
        }
        return NEUTRAL;
    }
} 